﻿
Imports System
Imports System.Data
Imports System.Text

Imports Moca.Db

Imports Microsoft.VisualStudio.TestTools.UnitTesting

Imports Moca.Db.Helper

Namespace Db.Helper

    <TestClass()> Public Class ODBCDbAccessHelperTest
        Inherits Moca.Test.AbstractUnitTest

        Private testContextInstance As TestContext

        Protected dbaTest As IDaoODBCTest

        '''<summary>
        '''現在のテストの実行についての情報および機能を
        '''提供するテスト コンテキストを取得または設定します。
        '''</summary>
        Public Property TestContext() As TestContext
            Get
                Return testContextInstance
            End Get
            Set(value As TestContext)
                testContextInstance = value
            End Set
        End Property

#Region "追加のテスト属性"
        '
        'テストを作成するときに、次の追加属性を使用することができます:
        '
        'クラスの最初のテストを実行する前にコードを実行するには、ClassInitialize を使用
        <ClassInitialize()> _
        Public Shared Sub MyClassInitialize(ByVal testContext As TestContext)
            ClassInitialize(testContext)
        End Sub

        'クラスのすべてのテストを実行した後にコードを実行するには、ClassCleanup を使用
        <ClassCleanup()> _
        Public Shared Sub MyClassCleanup()
            ClassCleanup()
        End Sub

        '各テストを実行する前にコードを実行するには、TestInitialize を使用
        <TestInitialize()> _
        Public Sub MyTestInitialize()
            Me.inject()
        End Sub

        '各テストを実行した後にコードを実行するには、TestCleanup を使用
        <TestCleanup()> _
        Public Sub MyTestCleanup()
        End Sub

#End Region


        '''<summary>
        '''ConnectionTest のテスト
        '''</summary>
        <TestMethod()> _
        Public Sub ConnectionTest()
            Dim target As OdbcAccessHelper = dbaTest.GetHelper
            Dim actual As DataTable
            actual = target.ConnectionTest

            Dim dt As DataTable
            dt = target.Restrictions()
            For Each row As DataColumn In dt.Columns
                Debug.Print(row.ColumnName & ", ")
            Next
            For Each row As DataRow In dt.Rows
                Dim sb As New StringBuilder
                For Each col As Object In row.ItemArray
                    sb.Append(col.ToString())
                    sb.Append(", ")
                Next
                Debug.Print(sb.ToString)
            Next
        End Sub

        '''<summary>
        '''CDbParameterName のテスト
        '''</summary>
        <TestMethod()> _
        Public Sub CDbParameterNameTest()
            Dim target As OdbcAccessHelper = dbaTest.GetHelper
            Dim name As String = "hoge"
            Dim expected As String = "hoge"
            Dim actual As String
            actual = target.CDbParameterName(name)
            Assert.AreEqual(expected, actual)
        End Sub


    End Class

End Namespace
